package com.example.administrator.activitytest;

import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.Button;

public class SecondActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        Log.d("SecondActivity","Task id is " + getTaskId());
        setContentView(R.layout.second_layout);
        Button button2 = (Button) findViewById(R.id.button_2);
        button2.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Intent intent = new Intent(SecondActivity.this,ThirdActivity.class);
                startActivity(intent);
//                intent.putExtra("data_return", "Hello FirstActivity");
//                setResult(RESULT_OK, intent);
//                finish();
            }
        });
        /*可以看到，我们还是构建了-个Intent,只不过这个Intent仅仅是用于传递数据而已，它没有指定任何的“意图”。
        紧接着把要传递的数据存放在Intent中，然后调用了setResult()方法。这个方法非常重要，
        是专门用于向上一个活动返回数据的。setResult()方法接收两个参数，第一个参数用于向上一个活动返回处理结果，
        -般只使用RESULT OK或RESULT CANCELED这两个值，第二个参数则把带有数据的Intent 传递回去，
         然后调用了finish()方法来销毁当前活动。*/

        /*
        由于我们是使用startActivityForResult()方法来启动SecondActivity的，在SecondActivity被销毁之后会回调
        上一个活动的onActivityResult()方法，因此我们需要在FirstActivity中重写这个方法来得到返回的数据，
        如下所示:
         */
    }


    @Override
    public void onBackPressed() {
        Intent intent = new Intent();
        intent.putExtra("data_return","Hello FirstActivity");
        setResult(RESULT_OK,intent);
        finish();
    }

    @Override
    protected void onDestroy() {
        super.onDestroy();
        Log.d("SecondActivity","onDestroy");
    }
    //Intent intent = getIntent();
       // String data = intent.getStringExtra("extra_data");
        //Log.d("SecondActivity",data);
        //我们可以通过getIntent()方法获取到用于启动SecondActivty的Intent，然后调用
        //getStringExtra()发布方法，传入相应的键值，就可以得到传递的数据了。这里由于我们传递
        //的是字符串，所以使用getStringExtra()方法来获取传递的数据。如果传递的是整型数据，则使
        //用getIntExtra()方法；如果传递的是布尔类型数据，则使用getBooleanExtra()方法，以此类推。

    }


